/*
 * 问题：二进制水温与茶量的乘积计算
 * 描述：输入一个二进制字符串表示水温，和一个十进制整数表示茶量，
 *       将二进制水温转换为十进制后，与茶量相乘，输出结果
 * 示例：
 *   输入：1010 3 （二进制1010对应十进制10，10×3=30）
 *   输出：30
 */

#include <stdio.h>
#include <string.h>  // 提供strlen函数用于获取字符串长度

int main() {
    char binary[20];   // 存储输入的二进制字符串（最长20位，满足常规水温范围）
    int tea_amount;    // 存储输入的十进制茶量

    // 读取二进制表示的水温（如"1001"表示9℃）
    scanf("%s", binary);
    // 读取十进制表示的茶量（如5表示5克）
    scanf("%d", &tea_amount);

    int temperature = 0;  // 存储转换后的十进制水温
    int len = strlen(binary);  // 获取二进制字符串的长度（位数）

    // 核心：二进制转十进制的计算过程
    for (int i = 0; i < len; ++i) {
        // 计算当前位的权重：2的幂次
        // 二进制从左到右是高位到低位，第i位的权重为2^(len-1-i)
        // 例如"1010"（len=4）：
        // i=0时，权重是2^(3) = 8（对应最高位）
        // i=1时，权重是2^(2) = 4
        // i=2时，权重是2^(1) = 2
        // i=3时，权重是2^(0) = 1（对应最低位）
        int power = 1;  // 初始权重为1（2^0）
        for (int j = 0; j < len - 1 - i; ++j) {
            power *= 2;  // 循环计算2的n次方（n=len-1-i）
        }

        // 当前位的数值 = 字符转数字（'0'转0，'1'转1）× 权重
        // 累加所有位的数值，得到十进制水温
        temperature += (binary[i] - '0') * power;
    }

    // 计算结果：十进制水温 × 茶量，并输出
    printf("%d\n", temperature * tea_amount);

    return 0;
}
    